#pragma once

#define MAX(a, b) (a>b?a:b)
#define MIN(a, b) (a<b?a:b)

std::ostream& operator<< (std::ostream& out, const glm::vec2& vec);
std::ostream& operator<< (std::ostream& out, const glm::vec3& vec);
std::ostream& operator<< (std::ostream& out, const glm::vec4& vec);

std::ostream& operator<< (std::ostream& out, const glm::ivec2& vec);
std::ostream& operator<< (std::ostream& out, const glm::ivec3& vec);
std::ostream& operator<< (std::ostream& out, const glm::ivec4& vec);

std::ostream& operator<< (std::ostream& out, const glm::mat4& mat);